Soru & Cevap

Local Veritabani icin Content Provider olusturma

01.09.2014 - 07:19

Merhaba arkadaslar, 
Offline Veritabani uzerinde calisiyorum. ListView uzerinden SimpleCursorAdapter kullanarak veritabanindan blgileri bir liste halinde gosteriyorum. Verileri Veritabanindan alirken Loader (bekleme mesaji) gostermek istiyorum. Loader kullanirken, CONTENT_URI isteniyo. Local Veritabanina ulasmak icin nasil bir CONTENT PROVIDER olusturmam lagzim. 

Simdiden tskler :)

19 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-3606-1408610132.jpg
cgural
02.09.2014 - 01:08

Kodun gayet anlaşılır bir kodmuş, tebrik ederim. ProgressDialog göstermeye de gayet uygun. Şurada sana uygun bir örnek var: http://stackoverflow.com/questions/8953876/showing-progress-dialog-while-loading-database-in-android (Aslında yine AsyncTask kullanıyorsun ve yine kırılganlık içeriyor. Ancak diyalog göstermek için gayet iyi bir yöntem)

Yalnız kodda depreciated-önerilmeyen bazı metotlar var - startManagingCursor() gibi. Kaldı ki bu işlemlerin hepsini UI thread üzerinde yapıyorsun; bu kod da konfigürasyon değişikliklerine karşı kırılgan. Bu yüzden Loader'ları kullanmanı öneriyorum. (Yukarıda progress dialog ile karışmış ama Loader başka bir yapı.) Bu amaçla şu belgeyi okumalısın, o kadar da karmaşık değil: http://developer.android.com/guide/components/loaders.html

(Ayrıca burada konfigürasyon değişikliklerinden etkilenmeden veri tabanı işlemlerini yapabilmeyle ilgili muhteşem bir yazı dizisi var: http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-background.html)

Haris
03.09.2014 - 11:22
@Caner tskler, ama dedigim gibi: Loaders kullanmak icin ContentProvider uzerine Query olusturmam lagzim. Benim veritabanim da Local Veritabani. SimpleCursorAdapter kullandigim icinde local veritabanin ContentProvider-ini olusturmam lagzim
picture-3606-1408610132.jpg
cgural
02.09.2014 - 10:41

Güzel soru. Bir Content Provider oluşturup onun üzerinden gitmek en derli toplu çözüm. (Yalnız yereldeki bir veri tabanında ne kadar veri var ki yüklenmesi uzun sürecek ve yükleniyor göstergesi göstereceksiniz bilemedim.)

Loader, (progressbar değil) AsyncTaskLoader gibi çok güzel mekanizmalar var, ContentProvider ile çalışabileceğiniz. 

İngilizce ancak şuradan başlayabilirsiniz geliştirmeye: http://developer.android.com/guide/topics/providers/content-providers.html Bazı güvenlik önlemleri de var ki atlamamak gerek.